#define _CRT_SECURE_NO_WARNINGS 1

#include "Stack.h"

#if 0
int main()
{
	ST s;
	STInit(&s);
	int i = 0;
	for (i = 1; i <= 5; i++)
	{
		STPush(&s, i); 
	}
	while (!STEmpty(&s))
	{
		printf("%d\n", STTop(&s));
		STPop(&s);
	} 

	STDestroy(&s);
    
	return 0;
}
#endif

#include "Queue.h"

int main()
{
	Queue q;
	QueueInit(&q);
	int i = 0;
	while (i <= 5)
	{
		QueuePush(&q, i);
		i++;
	}
	while (!QueueEmpty(&q))
	{
		printf("%d ", QueueFront(&q));
		QueuePop(&q);
	}
	printf("\n");
	return 0;
}



//typedef struct {
//    int* arr;
//    int head;
//    int tail;
//    int k;
//} MyCircularQueue;
//
//MyCircularQueue* myCircularQueueCreate(int k) {
//    MyCircularQueue* st = (MyCircularQueue*)malloc(sizeof(MyCircularQueue));
//    st->arr = (int*)malloc((k + 1) * sizeof(int));
//    st->head = 0;
//    st->tail = 0;
//    st->k = k;
//    return st;
//}
//
//bool myCircularQueueIsEmpty(MyCircularQueue* obj) {
//    return obj->head == obj->tail;
//}
//
//bool myCircularQueueIsFull(MyCircularQueue* obj) {
//    return obj->head == (obj->tail + 1) % (obj->k + 1);
//}
//
//bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) {
//    if (myCircularQueueIsFull(obj))
//        return false;
//    obj->arr[obj->tail] = value;
//    obj->tail++;
//    obj->tail %= (obj->k + 1);
//    return true;
//}
//
//bool myCircularQueueDeQueue(MyCircularQueue* obj) {
//    if (myCircularQueueIsEmpty(obj))
//        return false;
//    obj->head++;
//    obj->head %= (obj->k + 1);
//    return true;
//}
//
//int myCircularQueueFront(MyCircularQueue* obj) {
//    if (myCircularQueueIsEmpty(obj))
//        return -1;
//    else
//        return obj->arr[obj->head];
//}
//
//int myCircularQueueRear(MyCircularQueue* obj) {
//    if (myCircularQueueIsEmpty(obj))
//        return -1;
//    else
//        //return obj->tail == 0 ? obj->arr[obj->k] : obj->arr[obj->tail - 1];
//        return obj->arr[(obj->tail + obj->k) % (obj->k + 1)];
//}
//
//void myCircularQueueFree(MyCircularQueue* obj) {
//    free(obj->arr);
//    free(obj);
//}
